<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:composite="http://java.sun.com/jsf/composite">

    <h:head>
        <f:facet name="first">
            <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
        </f:facet>
    </h:head>

    <composite:interface>
        <composite:attribute name="razon" type="java.lang.String" />
        <composite:attribute name="lblbtnfind" type="java.lang.String" />
        <composite:attribute name="update" type="java.lang.String" />
    </composite:interface>

    <composite:implementation>

        <p:outputPanel>
            <p:commandButton id="btnFindAddFactura" value="#{cc.attrs.lblbtnfind}" actionListener="#{MBComponenteAddFacturaNC.cargaInicial}"
                             icon="ui-icon-plus" immediate="true" update="pnlFindOrden" process="@this" ajax="true"
                             oncomplete="wv#{cc.id}.show()" style="font-size:10px;">
                <f:attribute name="razon" value="#{cc.attrs.razon}" />  
            </p:commandButton>	
        </p:outputPanel>

        <p:dialog id="idFindCliente" header="Adicionando Facturas" showEffect="explode"
                  widgetVar="wv#{cc.id}" modal="true" maximizable="true">
            <p:panelGrid id="pnlFindOrden" style="width:100%;text-align:left">
                <p:row>
                    <p:column>
                        <h:outputLabel id="lblFactura" value="Num Factura " />
                    </p:column>
                    <p:column>
                        <p:inputMask mask="999" id="txtSerie" value="#{BKComponenteAddFacturaNC.serie}" rendered="false"  />
                        <f:verbatim rendered="false">-</f:verbatim>
                        <p:inputText id="txtNumero" value="#{BKComponenteAddFacturaNC.numero}" />
                    </p:column>
                    <p:column>
                        <p:commandButton id="btnFindBuscar" value="Buscar" 
                                         ajax="true" update="datatblFacturas,datatblDetalle" process="@this txtSerie,txtNumero" 
                                         actionListener="#{MBComponenteAddFacturaNC.buscarFacturas()}"/>
                    </p:column>
                </p:row>

                <p:row>
                    <p:column colspan="3">
                        <p:fieldset legend="Lista de Facturas">
                            <p:dataTable id="datatblFacturas" var="factura"
                                         value="#{BKComponenteAddFacturaNC.listaFacturas}"
                                         emptyMessage="No exsiten articulo" filteredValue=""
                                         rowIndexVar="rowIndex" paginator="true" rows="5"
                                         paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink}
                                         {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                                         rowsPerPageTemplate="5,10,15"  rowKey="#{factura.coddocventa}"  
                                         selection="#{BKComponenteAddFacturaNC.facturaSeleccionado}" selectionMode="single"
                                         paginatorPosition="bottom" styleClass="datable-busqueda">

                                <p:ajax event="rowSelect" />

                                <p:column id="idColumnaNum" style="width: 5%" headerText="Num.">
                                    <h:outputText value="#{rowIndex+1}" />
                                </p:column>

                                <p:column id="idColumnaSerie" style="width: 10%" sortBy="#{factura.serieFactura}" headerText="Serie">
                                    <h:outputText value="#{factura.serieFactura}" />
                                </p:column>

                                <p:column id="idColumnaNumero" style="width: 10%" sortBy="#{factura.numFactura}" headerText="N.Doc">
                                    <h:outputText value="#{factura.numFactura}" />
                                </p:column>

                                <p:column id="idColumnaFecha" style="width: 15%" sortBy="#{factura.fechDocventa}" headerText="Fecha">
                                    <h:outputText value="#{factura.fechDocventa}" >
                                        <f:convertDateTime pattern="dd/MM/yyyy"/>
                                    </h:outputText>
                                </p:column>

                                <p:column id="idColumnaRUC" style="width: 10%" sortBy="#{factura.ruc}" headerText="RUC Cliente">
                                    <h:outputText value="#{factura.ruc}" />
                                </p:column>

                                <p:column id="idColumnaRazon" style="width: 25%" sortBy="#{factura.razon}" headerText="Razon Social">
                                    <h:outputText value="#{factura.razon}" />
                                </p:column>


                                <p:column id="idColumnaVenta" style="width: 10%" sortBy="#{factura.precioVenta}" headerText="Precio Venta">
                                    <h:outputText value="#{factura.precioVenta}" >
                                        <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                    </h:outputText>
                                </p:column>

                                <p:column id="idColumnaAcciones" style="width: 10%"  headerText="#{message['general.label.tipoAcesso']}">                                                        
                                    <p:commandButton icon="ui-icon-pencil" title="#{message['general.button.editar']}" process="@this" immediate="true"
                                                     actionListener="#{MBComponenteAddFacturaNC.buscarDetalleFacturas()}" update=":formFacturacion:dataTablaArticulos:findFactura:datatblDetalle" ajax="true">
                                        <f:setPropertyActionListener value="#{factura}" target="#{BKComponenteAddFacturaNC.facturaSeleccionado}" />  
                                    </p:commandButton>                                                  
                                </p:column>

                            </p:dataTable>
                        </p:fieldset>
                    </p:column>
                </p:row>
                <p:row>
                    <p:column colspan="3">
                        <p:fieldset legend="Lista de Detalle de Facturas">
                            <p:dataTable id="datatblDetalle" var="det"
                                         value="#{BKComponenteAddFacturaNC.listaDetalleFacturacion}"
                                         emptyMessage="No existe detalle" filteredValue=""
                                         rowIndexVar="rowIndex" paginator="true" rows="10"
                                         paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                                         rowsPerPageTemplate="5,10,15"  rowKey="#{det.ventaDetalleFacturacionPK}" 
                                         selection="#{BKComponenteAddFacturaNC.facturaDetalleSeleccionado}" selectionMode="single"
                                         paginatorPosition="bottom" styleClass="datable-busqueda">

                                <p:ajax event="rowSelect"/>

                                <p:column id="idColumnaNum" style="width: 5%" headerText="Num.">
                                    <h:outputText value="#{rowIndex+1}" />
                                </p:column>

                                <p:column id="idColumnaDesc" style="width: 55%"
                                          sortBy="#{det.descProducto}" headerText="Descripcion">
                                    <h:outputText value="#{det.descProducto}" />
                                </p:column>



                                <p:column id="idColumnaUndMed" style="width: 10%"
                                          sortBy="#{det.unidad.abrev}" headerText="Und. de Med.">
                                    <h:outputText value="#{det.unidad.abrev}" />
                                </p:column>

                                <p:column id="idColumnaCant" style="width: 10%"
                                          sortBy="#{det.cantidad}"  headerText="Cantidad">
                                    <h:outputText value="#{det.cantidad}" >
                                        <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                    </h:outputText>
                                </p:column>

                                <p:column id="idColumnaPrecio" style="width: 10%"
                                          sortBy="#{det.precUnitario}"  headerText="Precio">
                                    <h:outputText value="#{det.precUnitario}" >
                                        <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                    </h:outputText>
                                </p:column>

                                <p:column id="idColumnaTotal" style="width: 10%"
                                          sortBy="#{det.total}" headerText="Total">
                                    <h:outputText value="#{det.total}" >
                                        <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                    </h:outputText>
                                </p:column>



                            </p:dataTable>
                        </p:fieldset>
                    </p:column>
                </p:row>

                <p:row>
                    <p:column style="text-align:center" colspan="3">
                        <p:commandButton id="btnAceptarArticulos" value="Aceptar"
                                         actionListener="#{MBComponenteAddFacturaNC.notificarObservadores()}"
                                         process="@this" update="#{cc.attrs.update}"
                                         oncomplete="if (args.validationFailed){ wv#{cc.id}.show()} else {wv#{cc.id}.hide()}" />
                        <p:commandButton id="btnCancelarArticulos" value="Cancelar" type="button"
                                         onclick="wv#{cc.id}.hide();" />
                    </p:column>
                </p:row>
            </p:panelGrid>
        </p:dialog>

    </composite:implementation>

</html>
